home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Tools 5
/
Amiga Tools 5.iso
/
tools
/
developer-tools
/
aros
/
examples
/
exec
/
lists.c
next >
Wrap
C/C++ Source or Header
|
1996-07-15
|
3KB
|
131 lines
/******************************************************************************
MODUL
lists.c
DESCRIPTION
This file contains a complete ready-to-compile example of how to
use lists.
NOTES
BUGS
TODO
EXAMPLES
SEE ALSO
INDEX
HISTORY
30-08-95 digulla created
******************************************************************************/
/**************************************
Includes
**************************************/
/* This define is to enable certain features that the original AmigaOS
lacks. The example will compile if you comment this one out so
you can see what the advantage really is :) */
#define AOS_ALMOST_COMPATIBLE
/* All neccessary #include's for the example */
#include <exec/lists.h>
#include <clib/exec_protos.h>
/* These are #include's neccessary to compile but not for the example
itself */
/**************************************
Local Types
**************************************/
/* Example 1: How to use the struct List in other structures */
typedef struct _DemoList
{
struct List dl_List; /* Here we collect all the nodes.
There is no rule that this has
to be the first thing in the
new type, but it has advantages
(see below). */
UBYTE * dl_Name; /* The name of our list */
} DemoList;
/* Example 2: How to make use of the Node-structure */
typedef struct _DemoNode
{
struct Node dn_Node; /* This should be the first thing
in any node ! */
UBYTE dn_Name[32]; /* Nodes just store a pointer to
the name, but I want it in the
node itself. */
} DemoNode;
/**************************************
Functions
**************************************/
/*****************************************************************************
NAME */
int main (
/* SYNOPSIS */
int argc,
char ** argv)
/* FUNCTION
This is the main routine for the example on how to use
nodes.
INPUTS
None... we ignore them.
RESULT
Always 0.
NOTES
BUGS
SEE ALSO
INTERNALS
HISTORY
30-08-95 digulla created
******************************************************************************/
{
/* First we need some variables to work with. Since this demo
should show how to use lists and nodes, I do not use
dynamic allocated memory. */
DemoList list;
DemoNode nodes[10];
/* Before we can use a list, we have to intialize it. Since we
have put the List-struct at the top if out new type, we
can give the address of the variable and need not look into
it (ie. no &list.nl_List) but we need a cast. */
#ifdef AOS_ALMOST_COMPATIBLE
NewList (&list);
#else
# ifdef USE_CAST
NewList ((struct List *)&list);
# else /* No cast */
NewList (&list.dl_List);
# endif
#endif
} /* main */
/******************************************************************************
***** ENDE lists.c
******************************************************************************/